/**
 * 跨域配置和HTTP客户端配置 - 系统跨域访问和外部服务调用的配置管理
 *
 * 开发人员：徐少洋
 * 开发时间：2025-10-20 至 2025-10-25
 * 模块职责：配置系统跨域访问策略和HTTP客户端，支持前后端分离和外部服务集成
 *
 * 技术要点：
 * - CORS跨域访问配置，支持前端开发调用
 * - RestTemplate HTTP客户端配置
 * - 开发环境友好配置，生产环境可收紧
 * - 多种HTTP方法和头部支持
 * - 预检请求缓存优化
 *
 * 开发故事：负责系统跨域和HTTP客户端的配置管理，与前端开发团队和外部服务集成深度配合，确保前后端通信的稳定性和外部服务调用的可靠性。
 */
package com.pbl.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 开发环境友好型CORS配置，生产环境可根据需要收紧安全策略
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(false)
                .maxAge(3600);
    }

    /**
     * 配置HTTP客户端RestTemplate，用于外部服务调用
     */
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
